home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mission 3
/
Mission 3.zip
/
Mission 3.iso
/
zugabe
/
va45
/
visual45
/
objects
/
form
/
radio_bt.s
< prev
next >
Wrap
Text File
|
1998-08-17
|
3KB
|
92 lines
DATA
GWVA_FRADIO_BUTTON_DEFAULT_METHODLIST:
GWVA_OBJ_STRUCT_METHOD GWVA_METHOD_FORM_CLICK,GWVA_FRADIO_BUTTON_PRG_CLICK
GWVA_OBJ_STRUCT_METHOD_END_LIST
TEXT
;------------------------------------------------------------------------------
; Method name : GWVA_METHOD_FORM_CLICK
; Asm label : GWVA_FRADIO_BUTTON_PRG_CLICK
; Description : Méthode de traitement d'un clic sur un radio bouton
;
; in : a0.l = pointeur sur l'objet
; in : a1.l = pointeur sur le buffer d'entrée typé GWVA_FORM_CLICK_IN
; in : d0.l = [ X.w | num gem.w ]
; in : d1.l = [ Y.w | mouse button.w ]
; in : d2.l = [ Key state.w | mouse count.w ]
; out : d6.w = GWVA_PRGRET_NOT_CONSUMED ou GWVA_PRGRET_CONSUMED
;
; 04/04/98 : Création
;------------------------------------------------------------------------------
GWVA_FRADIO_BUTTON_PRG_CLICK:
GWVA_EXEC_VISUAL_EVENT #GWVA_METHOD_ON_FORM_CLICK
cmp.w #GWVA_SEARCH_EXEC_CONSUMED,d6
beq .pas_click_car_on_click_consomme ; je ne suis pas concerné
;-----------------------------------;
move.w GWVA_FORM_CLICK_IN_FATHER_IDX(a1),d7
cmp.w GWVA_FRADIO_OBJ_FATHER_IDX(a0),d7
bne .ce_n_est_pas_mon_pere
lea FRADIO_TMP_IN_BUF,a3
move.l GWVA_FORM_CLICK_IN_WIND_PTR(a1),GWVA_FORM_BUTTON_IN_WIND_PTR(a3)
move.l GWVA_FORM_CLICK_IN_TREE_PTR(a1),GWVA_FORM_BUTTON_IN_TREE_PTR(a3)
save.l a1 ; seul ce paramètre bouge
move.l a3,a1
lea FBUTTON_TMP_OUT_BUF,a2
GWVA_CALL_METHOD_DIFF_METH_SAME_CLASS #GWVA_METHOD_FORM_BUTTON
* move.w GWVA_FORM_BUTTON_OUT_NEW_STATE(a2),d3
* move.w GWVA_FORM_BUTTON_OUT_NEW_TYPE(a2),d4
* move.w GWVA_FORM_BUTTON_OUT_OLD_STATE(a2),d5
move.w GWVA_FORM_BUTTON_OUT_RET_CODE(a2),d6
load.l a1 ; seul ce paramètre bouge
; pas d'after donc on peut scratcher les params d'entrée
; on positionne a1/a2, car ils servent pour tous les évènements
move.l GWVA_FORM_CLICK_IN_TREE_PTR(a1),a2 ; tant que a1 est bon
move.l GWVA_FORM_CLICK_IN_WIND_PTR(a1),a1
;-----------------------------------;
; émettre changed ...
* tst d6 ; pour un radio : on s'en moque bien
* bne .propriete_exit_non_activee : car ils sont rarement exit
cmp.w GWVA_FRADIO_OBJ_SELECTION(a0),d0
beq.s .selection_inchangee
; Attention : positionner les paramètres d'entrée + sauver les courants
; ! on ne prépare pas les paramètres comme il faut pour le moment !
move.w GWVA_FRADIO_OBJ_SELECTION(a0),d1 ; avant de l'écraser
move.w d0,GWVA_FRADIO_OBJ_SELECTION(a0) ; nouvelle
GWVA_EXEC_VISUAL_EVENT #GWVA_METHOD_FORM_CHANGED
.selection_inchangee:
.pas_click_car_on_click_consomme:
moveq #GWVA_PRGRET_CONSUMED,d6
rts
.ce_n_est_pas_mon_pere:
moveq #GWVA_PRGRET_NOT_CONSUMED,d6
rts
BSS
FRADIO_TMP_IN_BUF: ds.b GWVA_FORM_BUTTON_IN_STRUCT_LENGTH
FRADIO_TMP_OUT_BUF: ds.b GWVA_FORM_BUTTON_OUT_STRUCT_LENGTH
TEXT